package com.linkgie.galaxyframework.shell;

import org.jline.utils.AttributedStyle;

/**
 * 命令终端；
 */
public interface CommandTerminal {

	/**
	 * 获取统一的高亮样式；
	 * 
	 * @return
	 */
	AttributedStyle getHightlightStyle();

	/**
	 * 设置统一的高亮样式；<br>
	 * 
	 * 此样式将取代终端输入交互过程中的基于历史、命令匹配等交互状态而动态设置的显示样式；
	 * 
	 * <br>
	 * 
	 * 利用此属性可以优化从后台发起的终端交互体验；
	 * 
	 * @param style
	 */
	void setHightlightStyle(AttributedStyle style);

	/**
	 * 命令输入的提供者；
	 * 
	 * @return
	 */
	MaskInputProvider getInputProvider();

	
	OutputHandler getOutputHandler();

	/**
	 * 终端的是否处于连接中；
	 * <p>
	 * 
	 * @return
	 */
	boolean isConnected();
}
